let a = { b: {} };
// console.log(a.b.c.d); // TypeError
console.log(a.b?.c?.d); // undefined
let x = { y: [1, 2, 3] };
let i = 0;
console.log(x?.["y"]?.[i++]); // 1
console.log(`i = ${i}`); // i = 1
console.log(x?.["z"]?.[i++]); // undefine
// 上一条语句的 i++ 被短路了，因此 i 还是等于 1
console.log(`i = ${i}`); // 1
